# 统计每个平台开发不同游戏类型的个数,绘制词云图
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from wordcloud import WordCloud

def topic_5(data:pd.DataFrame):
    # 设置绘图风格为ggplot
    plt.style.use("ggplot")

    # 设置中文编码和符号的正常显示
    plt.rcParams['font.family'] = 'sans-serif'
    plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']
    plt.rcParams["axes.unicode_minus"] = False

    # 数据预处理：去除重复数据
    data.drop_duplicates(inplace=True)

    # 统计每个平台开发不同游戏类型的个数
    platform_genre_count = data.groupby(['Platform', 'Genre']).size().unstack(fill_value=0)

    # 将数据格式转换为字典，以便生成词云
    platform_genre_count_dict = platform_genre_count.to_dict(orient='records')[0]

    # 创建词云对象
    wordcloud = WordCloud(width=800, height=400, background_color='white').generate_from_frequencies(
        platform_genre_count_dict)

    # 绘制词云图
    plt.figure(figsize=(10, 6))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.title('平台开发不同游戏类型的个数词云图')
    plt.axis('off')  # 隐藏坐标轴

    # 保存词云图像
    wordcloud.to_file("static/img/platform_genre_wordcloud.png")  # 词云图像将保存为 "platform_genre_wordcloud.png"

    # 显示词云图
    plt.show()

